import org.junit.jupiter.api.Test;

import java.util.*;

public class _38_外观数列 {
    @Test
    public void test(){
        System.out.println(countAndSay(3));
//        List<Character> list=new ArrayList<>();
//        list.add('a');
//        list.add('b');
//        list.add('c');
//        String s="";
//        StringBuilder builder=new StringBuilder(s);
//        for (Character character : list) {
//           builder.append(character);
//        }
//        System.out.println(builder.toString());
    }

    public String countAndSay(int n) {
        if (n==1) return "1";
        String s="1";
        List<Character> list=new ArrayList<>();
        for (int i = 0; i < n; i++) {
            if (s.length()==1){
                s="11";
                continue;
            }
            int num=0;
            for (int j = 0; j < s.length()-1; j++) {
                num++;
                if (s.charAt(j+1)==s.charAt(j)){
                    num++;
                    if (j+1==s.length()-1){
                        list.add((char)(num+'0'));
                        list.add(s.charAt(j));
                        num=0;
                    }
                }
                if (s.charAt(j+1)!=s.charAt(j)){
                    list.add((char)(num+'0'));
                    list.add(s.charAt(j));
                    num=0;
                }
            }
            String d="";
            StringBuilder builder=new StringBuilder(d);
            for (Character character : list) {
                builder.append(character);
            }
            s=builder.toString();
        }
        return s;
    }

}
